package com.sgcc.lms.config;

import com.sgcc.lms.bean.Person;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;

/**
 * @Author: 李孟帅
 * @CreateTime: 2020-11-27 14:53
 * @Description:
 */
@Configuration
public class Config2 {

    @Bean("person") //bean的名称，不写，默认为方法名称
    public Person person(){
        return new Person();
    }

    @Scope("singleton")//单例模式，默认容器在初始化的时候创建实例，使用时直接从容器中取出
    @Lazy//懒加载，配合单例使用，在使用时才创建单个实例，以后使用直接从容器中取出
    @Bean
    public Person person2(){
        System.out.println("给容器中添加Person....");
        return new Person();
    }
    @Scope("singleton")//单例模式，默认容器在初始化的时候创建实例，使用时直接从容器中取出
    @Lazy//懒加载，配合单例使用，在使用时才创建单个实例，以后使用直接从容器中取出
    @Bean
    public Person person3(){
        return new Person();
    }

    @Scope("prototype")//多例模式，在使用时创建对象
    @Bean
    public Person person4(){
        return new Person();
    }
}
